package com.mzm.config;

import java.io.InputStream;

/**
 * A simple, ini style, configuration.
 * 
 * @author Daniel Orr
 * 
 */
public interface ConfigurationService {

	/**
	 * 
	 * @param section
	 * @param paramName
	 * @return
	 */
	public Parameter getParameter(String section, String paramName);

	/**
	 * 
	 * @param section
	 * @param paramName
	 * @return
	 */
	public Object getObjectParameter(String section, String paramName);
	
	/**
	 * Loads an (XML) object from given stream.
	 * 
	 * @param is
	 * @return the parsed object or <code>null</code> if stream is
	 *         <code>null</code>.
	 */
	public Object loadConfigObjectFromStream(InputStream is);

	/**
	 * Sets a parameter value.
	 * 
	 * @param section
	 * @param paramName
	 * @param value
	 */
	public void setParameter(String section, String paramName, String value);

	public void setParameter(String section, String paramName, Object value);
	
	/**
	 * 
	 * @return
	 */
	public String getDbVersion();

}
